/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ASM_VPMEM_API_H
#define _ASM_VPMEM_API_H
#include <asm/vpmem.h>

#define MEM_LOW    0x10000000

extern struct e820_table *e820_table;
extern u64  e820__mapped_find(u64 *start, enum e820_type type);
extern int  e820__mark_vpmem(void);

extern void e820__range_add(u64 start, u64 size, enum e820_type type);
extern u64  e820__range_update(u64 start, u64 size, enum e820_type old_type,
							   enum e820_type new_type);

extern void e820__print_table(char *who);
extern void e820__memblock_setup(void);
extern void vpmem_control_set(void);

void vpmem_update_memory_range(void);
void vpmem_set_userdef(int value);
extern u64  vpmem__mapped_find(u64 *start, enum e820_type type);

int first_valid_vpmem_start(u64 *start);
#endif /* _ASM_VPMEM_API_H */
